/**
 * DAO模式（数据访问对象模式）：用于提供对数据源的抽象和简化数据访问，DAO模式充当了数据模型和业务逻辑之间的桥梁，
 * 允许开发者通过一致的接口访问不同类型的数据源，如关系数据库、XML文件或内存集合。
 * 
 * 示例需求：
 * 
 * 创建一个作为模型对象或数值对象的 Student 对象。
 * StudentDao 是数据访问对象接口。StudentDaoImpl 是实现了数据访问对象接口的实体类。
 * 演示类SimpleMain使用 StudentDao 来演示数据访问对象模式的用法。
 * 
 * 角色：
 * DAO接口：StudentDao
 * DAO接口实现类：StudentDaoImpl
 * 数据模型：Student
 * 数据源：用List<student>代替数据库
 * 业务逻辑：SimpleMain
 */
public class SimpleMain {
    public static void main(String[] args) {
        StudentDao studentDao = new StudentDaoImpl();

        // 输出所有的学生
        for (Student student : studentDao.getAllStudents()) {
            System.out.println("Student: [RollNo : "
                    + student.getRollNo() + ", Name : " + student.getName() + " ]");
        }

        // 更新学生
        Student student = studentDao.getAllStudents().get(0);
        student.setName("Michael");
        studentDao.updateStudent(student);

        // 获取学生
        studentDao.getStudent(0);
        System.out.println("Student: [RollNo : "
                + student.getRollNo() + ", Name : " + student.getName() + " ]");

    }
}
